1. Field of the Invention
The present invention relates to debugging of software for processor-oriented systems, and more particularly to maintaining object information concurrent with data optimization.
2. Description of the Related Art
In order to improve performance of a processor-oriented system, there has been an effort to decouple processor performance from the limitations of system bus performance. This effort has been pursued by providing a write buffer to control access to a system resource of a processor-oriented system. Read operations are normally given the highest priority for access to a system bus. Other accesses to a system bus such as write operations result in a delay of write data in a write buffer until the system bus becomes available.
A write buffer has increasingly been provided in processor-oriented systems to perform data optimization operations such as write merging, write collapsing, and read merging for maintaining data coherency. One candidate for queuing in a write buffer is a write object value. As a result of data optimization operations involving write object values, object size information for write object values has been lost. That is, the optimized object values no longer accompany the corresponding object size information. For example, if a write buffer merges two consecutive byte-sized object values into a single word-sized object value, then the write buffer loses the object size of the original object values, as the new data object is word-sized rather than byte-sized.
The object size information lost as a result of data optimization operations has been a limiting factor in debugging a software program of a processor-oriented system. A software program executed by a processor-oriented system has been used to perform write operations on data objects. When a software program does not utilize data optimization, the software program has typically been debugged by tracing or tracking write object values resulting from write operations. Reconstruction of write object values in debugging a software program, however, has been constrained by data optimization operations by a write buffer. A write object value resulting from a data optimization operation bas lacked the object size information necessary to reconstruct pre-optimization write object values.